from typing import List

def symbolic_fun(x) -> int:
    '''
    符号函数
    输入 x
    返回 正负1
    '''
    return -1 if x < 0 else 1


def three_layer_demo(x: List) -> int:
    '''
    一个用三层感知器网络模拟的简单线性判别分类器
    输入 输入层向量
    返回 输出层结果
    '''

    # 第一个隐含层的输入
    h1 = symbolic_fun(-2 + 2*x[0] - x[1])
    # 第二个隐含层的输入
    h2 = symbolic_fun(2 + 3*x[2] + 2*x[3])
    # 输出层结果
    return symbolic_fun(h1 + 2*h2 + 2)


